import request from '@/utils/request'

/**
 * 发布文章
 * @param {Object} data - 文章数据
 * @param {string} data.title - 文章标题
 * @param {string} data.content - 文章内容
 * @param {string} data.summary - 文章摘要
 * @param {number} data.category_id - 分类ID
 * @param {string} data.tags - 标签（逗号分隔）
 * @param {string} data.cover_image - 封面图片路径（可选）
 * @param {number} data.location_id - 地理位置ID（可选）
 * @param {number} data.status - 文章状态：0-草稿，1-已发布，2-下线
 * @returns {Promise}
 */
export function createArticle(data) {
  return request.post('/api/articles', data)
}

/**
 * 获取文章列表
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.page_size - 每页数量
 * @param {number} params.category_id - 分类ID筛选
 * @param {number} params.status - 文章状态筛选
 * @param {number} params.author_id - 作者ID筛选
 * @param {string} params.keyword - 关键词搜索
 * @param {number} params.is_top - 是否置顶筛选
 * @returns {Promise}
 */
export function getArticles(params) {
  return request.get('/api/articles', params)
}

/**
 * 获取文章详情
 * @param {number} articleId - 文章ID
 * @returns {Promise}
 */
export function getArticleDetail(articleId) {
  return request.get(`/api/articles/${articleId}`)
}

/**
 * 获取分类列表
 * @param {Object} params - 查询参数
 * @param {number} params.status - 分类状态筛选：0-禁用，1-启用
 * @returns {Promise}
 */
export function getCategories(params = { status: 1 }) {
  return request.get('/api/articles/categories', params)
}

/**
 * 更新文章
 * @param {number} articleId - 文章ID
 * @param {Object} data - 文章数据
 * @param {string} data.title - 文章标题（可选）
 * @param {string} data.content - 文章内容（可选）
 * @param {string} data.summary - 文章摘要（可选）
 * @param {number} data.category_id - 分类ID（可选）
 * @param {string} data.tags - 标签（逗号分隔，可选）
 * @param {string} data.cover_image - 封面图片路径（可选）
 * @param {number} data.location_id - 地理位置ID（可选）
 * @param {number} data.status - 文章状态：0-草稿，1-已发布，2-下线（可选）
 * @param {number} data.is_top - 是否置顶：0-不置顶，1-置顶（可选）
 * @returns {Promise}
 */
export function updateArticle(articleId, data) {
  return request.put(`/api/articles/${articleId}`, data)
}

/**
 * 删除文章
 * @param {number} articleId - 文章ID
 * @param {boolean} force - 是否强制删除（物理删除），默认false（软删除）
 * @returns {Promise}
 */
export function deleteArticle(articleId, force = false) {
  return request.delete(`/api/articles/${articleId}?force=${force ? 1 : 0}`)
}
